今天在使用日期轉換函式時,發現年分會顯示成民國年,而不是預想的西元年:
原本以為是特定狀況觸發的bug,為此檢查好久的程式,卻沒有發現異常的地方,
查了資料後才發現,作業系統的日期設定格式是會影響到日期呈現的,
這個格式設定的優先度會大於日期轉換函式指定的格式:
第一種處理的方式就是將日期格式設定還原回預設值,
若系統環境不允許變更日期格式,或是使用預設日期格式仍無效(我遇到這個情況),
可以使用System.Globalization.DateTimeFormatInfo,
就能夠產出不受作業系統設定影響的通用日期格式
DateTime.Now.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo)
使用之後,果然就正常顯示出西元年了~